package java6681.lesson07;

/**
 * @author Junichiro
 * @description
 * @date 2021-04-18 18:02
 **/

import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;

import java.io.File;
import java.io.IOException;
//F:\JavaFX\demo\t1.java
public class CreateNewFile6681Controller {

    @FXML
    private TextField tfFilename;

    @FXML
    private Label lblMessage;

    @FXML
    void listAll() throws IOException {
        String fileName = tfFilename.getText().trim();
        File file = new File(fileName);
        if (!file.exists()) {
            File parent = file.getParentFile();
            if (parent != null && !parent.exists()) {
                if (!parent.mkdirs()) {
                    throw new IOException("不能创建目录" + parent);
                }
                lblMessage.setText("创建目录：" + parent);
            }
            file.createNewFile();
            lblMessage.setText("创建新文件：" + file.getAbsolutePath());
        } else {
            lblMessage.setText("文件已存在");
        }
    }
}

/*
【问题1】图中第27～33行代码的作用是什么？如果删除这段代码会产生什么影响，请举例说明？
    判断创建文件的父目录是否为空,是否存在，不存在就创建目录。当输入不存在的目录时报错。

【问题2】请查阅资料，说明图中第27行的getParentFile()方法的功能
    getParentFile()获取文件的父目录

【问题3】请举个例子说明图中第28行的判断条件parent != null排除的是哪种情况？
    没有输入目录就只输入文件

【问题4】如果图中第29行的mkdirs()改用mkdir()，程序是否受到影响，请举个例子说明。
    报错，当没有创建好父目录文件夹的时候会报错。
    mkdirs()创建文件夹,如果父文件夹不存在，会帮你创建出来
    mkdir()创建文件夹 如果存在这样的文件夹，就不创建了

【问题5】如果输入f:\java\temp.txt，而电脑没有f盘，运行结果是什么？
    报错，java.io.IOException: 不能创建目录a:\JavaFX\demo
* */

//        String strFile = tfFilename.getText();
//        File file = new File(strFile);
//        if (file.exists()) {
//            lblMessage.setText("文件已存在");
//        }else {
//            lblMessage.setText("文件不存在,现已创建");
//            System.out.println(file.createNewFile());
//        }